PRINT "Sind diese Eingaben richtig ([J]a oder [N]ein) ?";
LINE INPUT "";Jn$
Jn$=LEFT$(UCASE$(Jn$),1)
CLS
WEND
Jn$="" ' fuer naechsten Aufruf loeschen
CLS
LOCATE 1,1
PRINT "Bitte den Dateinamen eingeben :"
LINE INPUT Datinfnam$
GOSUB FadeOut
IF Datinfnam$<>"" THEN
Datinfnam$="Daten/"+Datinfnam$+".INFOS"
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,Maxbezlaenge
WRITE #2,Anzmsk
WRITE #2,1 ' Satznummer
FOR i=1 TO Anzmsk
WRITE #2,Bezeichnung$(i)
WRITE #2,Laenge(i)
NEXT i
CLOSE #2
END IF
GOSUB FensterWieVorher
RETURN
Eingabe:
w.t$="MaxiDAT. Dateneingabe"+CHR$(0)
GOSUB FensterNeuRichten
GOSUB LoescheVariablen
LINE (0,0)-(640,255),0,bf:CLS
LINE INPUT "Filename ? ";Datnam$
GOSUB FadeOut
IF Datnam$="" THEN
GOSUB FensterWieVorher:RETURN
END IF
Datinfnam$=Drive$+Pfad$+Datnam$+".INFOS"
Datnam$=Drive$+Pfad$+Datnam$+".DATEN"
GOSUB LeseInfos
Satz=Satznummer
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
CLS : PRINT "Daten eingeben."
GOSUB FadeIn
WHILE Jn2$<>"N"
GOSUB Eing
FOR i=1 TO 11
LSET In$(i)=Ein$(i)
Ein$(i)=""
NEXT i
PUT #1,Satz
Satz=Satz+1
LOCATE 20,1
Jn2$=""
INPUT "Weitere Datensätze eingeben ? (J/N) ";Jn2$
Jn2$=LEFT$(UCASE$(Jn2$),1)
WEND
GOSUB FadeOut
Jn2$=""
CLOSE #1
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,Maxbezlaenge
WRITE #2,Anzmsk
WRITE #2,Satz
FOR i=1 TO Anzmsk
WRITE #2,Bezeichnung$(i)
WRITE #2,Laenge(i)
NEXT i
CLOSE #2
GOSUB FensterWieVorher
RETURN
Benutzen:
w.t$="MaxiDAT. Datei benutzen"+CHR$(0)
GOSUB FensterNeuRichten
GOSUB LoescheVariablen
LINE (0,0)-(640,255),0,bf:CLS
LINE INPUT "Filename ? ";Datnam$
GOSUB FadeOut
IF Datnam$="" THEN
GOSUB FensterWieVorher:RETURN
END IF
RastPort&=WINDOW(8)
Datinfnam$=Drive$+Pfad$+Datnam$+".INFOS"
Datnam$=Drive$+Pfad$+Datnam$+".DATEN"
GOSUB LeseInfos
Msatz=Satznummer-1
IF Msatz=0 THEN
GOSUB FadeIn
PRINT "Diese Datei enthält keine Daten."
BEEP
PRINT "Taste drücken !"
WHILE INKEY$="":WEND
GOSUB FadeOut:GOSUB FensterWieVorher
RETURN
END IF
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
WHILE Co$<>"+" AND Co$<>"-" AND Co$<>"G" AND Co$<>"S" AND Co$<>"R" AND Co$<>"D" AND Co$<>"E" AND Co$<>"P" AND Co$<>"Q" AND Co$<>CHR$(139) AND Co$<>CHR$(31) AND Co$<>CHR$(30)
Co$=UCASE$(INKEY$)
WEND
IF Co$=CHR$(139) THEN
REM 139 ist der ASCII-Code der HELP-Taste
GOSUB FadeOut
WINDOW 5,"MaxiDAT. Befehle beim Benutzen der Datei ... :",,31,1
RastPort&=WINDOW(8)
LINE (0,0)-(640,255),0,bf:CLS
WINDOW 5:CALL ActivateWindow(WINDOW(7))
txt$="Erklärungen zu den Befehlen :"
LOCATE 1,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="============================="
LOCATE 2,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<+> - Zeige den numerisch nächsten Datensatz"
LOCATE 4,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<-> - Zeige den numerisch letzten Datensatz"
LOCATE 5,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<G> - Springe zu einem bestimmten Satz"
LOCATE 6,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<S> - Suche nach Daten (beginnend vom aktuellen Satz."
LOCATE 7,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$=" Arbeitet auf Wunsch 'case-sensitive'.)"
LOCATE 8,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<E> - Aktuellen Datensatz verändern."
LOCATE 9,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<D> - Aktuellen Datensatz löschen."
LOCATE 10,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<P> - Aktuellen Datensatz ausdrucken."
LOCATE 11,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<Q> - Zurück zum Hauptmenü."
LOCATE 12,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<- - 10 Sätze zurück."
LOCATE 13,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="-> - 10 Sätze vorwärts"
LOCATE 14,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="<HELP>- Diese Seite zeigen."
LOCATE 15,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="Sie können dieses Window jetzt schon schließen, es kann"
LOCATE 17,1
CALL Text(RastPort&,SADD(txt$),LEN(txt$))
txt$="aber auch geöffnet bleiben, während Sie weiterarbeiten."
IF WoS$<>"V" AND WoS$<>"R" AND WoS$<>"G" AND WoS$<>"Q" THEN WoSuchen
IF Gk$="N" THEN
Gk=1
Such$=UCASE$(Such$)
ELSE
Gk=0
END IF
IF WoS$<>"Q" THEN
IF WoS$="V" THEN
Start=Satz:Ende=Msatz
ELSEIF WoS$="R" THEN
Start=1:Ende=Satz
ELSEIF WoS$="G" THEN
Start=1:Ende=Msatz
END IF
CLS
LOCATE 2,1
PRINT "Duchsuchter Bereich:"
PRINT " Start : ";Start
PRINT " Ende : ";Ende
FOR i=Start TO Ende
LOCATE 5,1
PRINT " Jetzt : ";i
GET #1,i
IF Gk THEN
Hier$=UCASE$(In$(Sfeld))
END IF
IF INSTR(Hier$,Such$) THEN
CLS:PRINT "Suchbegriff gefunden in Datensatz # ";i
GOSUB Unterbrechung
PRINT "Feldinhalt :"
PRINT In$(Sfeld)
WeiterSuchen:
LOCATE 4,3:LINE INPUT "Weitersuchen (J/N) ";Ws$
Ws$=UCASE$(LEFT$(Ws$,1))
IF Ws$<>"J" AND Ws$<>"N" THEN WeiterSuchen
IF Ws$="N" THEN
Gefunden=i:Satz=i:i=Ende+1
ELSE
Gefunden=i
CLS
LOCATE 2,1
PRINT "Duchsuchter Bereich:"
PRINT " Start : ";Start
PRINT " Ende : ";Ende
END IF
END IF
NEXT i
Satz=Gefunden
IF Satz<1 THEN Satz=1
IF Satz>Msatz THEN Satz=Msatz
END IF
WINDOW CLOSE 9
CALL SetWindowTitles(WINDOW(7),SADD(w.t$),-1)
END IF
IF Co$="+" THEN
IF Satz<Msatz THEN
Satz=Satz+1
ELSE
BEEP
END IF
END IF
IF Co$="-" THEN
IF Satz>1 THEN
Satz=Satz-1
ELSE
BEEP
END IF
END IF
IF Co$=CHR$(31) THEN
Satz=Satz-10
IF Satz<=0 THEN
BEEP
Satz=1
END IF
END IF
IF Co$=CHR$(30) THEN
Satz=Satz+10
IF Satz>Msatz THEN
BEEP
Satz=Msatz
END IF
END IF
IF Co$="G" THEN
LOCATE 22,1
INPUT "Wohin (* - letzter Satz) ";N$
IF N$="*" THEN
Satz=Msatz
ELSE
Satz=ABS(INT(VAL(N$)))
IF Satz=0 THEN
Satz=1
BEEP
END IF
IF Satz>Msatz THEN
Satz=Msatz
BEEP
END IF
END IF
END IF
IF Co$="D" THEN
FOR i=1 TO 11
LSET In$(i)=""
NEXT i
PUT #1,Satz
END IF
IF Co$="P" THEN
IF Drucker=1 THEN
FOR i=1 TO Anzmsk
LPRINT Bezeichnung$(i);" : ";In$(i)
NEXT i
LPRINT
LPRINT
END IF
END IF
IF Co$="E" THEN
FOR i=1 TO 11
Ein$(i)=In$(i)
NEXT i
GOSUB Eing
FOR i=1 TO 11
LSET In$(i)=Ein$(i)
NEXT i
PUT #1,Satz
END IF
WEND
Co$=""
CLOSE #1
GOSUB FadeOut
WINDOW CLOSE 5
GOSUB FensterWieVorher
RETURN
Loeschen:
CALL REQUEST("Programm wirklich","neu starten ?"," Ja "," Nein ",req%)
IF req%<>0 THEN
RUN
END IF
WINDOW OUTPUT 2
RETURN
Ende:
CALL REQUEST("WOLLEN SIE DAS PROGRAMM","WIRKLICH BEENDEN ?"," Ja "," Nein ",req%)
IF req%<>0 THEN
WINDOW CLOSE 2
SCREEN CLOSE 1
MENU RESET
LIBRARY CLOSE
END 'SYSTEM
END IF
WINDOW OUTPUT 2
RETURN
DruckeAlles:
w.t$="MaxiDAT. Alles ausdrucken"+CHR$(0)
GOSUB FensterNeuRichten
LINE (0,0)-(640,255),0,bf:CLS
LINE INPUT "Filename -> ";DNam$
IF DNam$="" THEN
GOSUB FensterWieVorher:RETURN
END IF
Datnam$=Drive$+Pfad$+DNam$+".DATEN"
Datinfnam$=Drive$+Pfad$+DNam$+".INFOS"
GOSUB LeseInfos
LPRINT "Filename : ";DNam$
LPRINT "Anzahl von Einträgen :";Satznummer-1
LPRINT "Druckdatum : ";
Datum DTM$
LPRINT DTM$
LPRINT "Zeit : ";TIME$
LPRINT
LPRINT
CLS
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
PRINT "Daten drucken . . ."
PRINT "Ich drucke momentan #"
FOR i=1 TO Satznummer-1
LOCATE 5,5
PRINT i
GET #1,i
FOR Ii=1 TO Anzmsk
LPRINT Bezeichnung$(Ii);" : ";
LPRINT In$(Ii)
NEXT Ii
LPRINT
NEXT i
CLOSE #1
LPRINT
LPRINT
LPRINT "--- Ende des Files ---"
LPRINT
LPRINT
LPRINT
GOSUB FensterWieVorher
RETURN
DruckeAllesOHNE:
w.t$="MaxiDAT. Alle Daten ohne 'Kopf' ausdrucken"+CHR$(0)
GOSUB FensterNeuRichten
LINE (0,0)-(640,255),0,bf:CLS
LINE INPUT "Filename -> ";DNam$
IF DNam$="" THEN
GOSUB FensterWieVorher
RETURN
END IF
Datnam$=Drive$+Pfad$+DNam$+".DATEN"
Datinfnam$=Drive$+Pfad$+DNam$+".INFOS"
GOSUB LeseInfos
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
PRINT "Daten drucken . . ."
PRINT "Ich drucke momentan #"
FOR i=1 TO Satznummer-1
LOCATE 5,5
PRINT i
GET #1,i
FOR Ii=1 TO Anzmsk
LPRINT In$(Ii)
NEXT Ii
LPRINT
NEXT i
CLOSE #1
LPRINT
LPRINT
GOSUB FensterWieVorher
RETURN
DruckeAuswahl:
w.t$="MaxiDAT. Bestimmte Daten drucken"+CHR$(0)
GOSUB FensterNeuRichten
LINE (0,0)-(640,255),0,bf:CLS
LINE INPUT "Filename -> ";DNam$
IF DNam$="" THEN
GOSUB FensterWieVorher:RETURN
END IF
INPUT "Welchen Datensatz (Nr. eingeben) ";Satz
Datnam$=Drive$+Pfad$+DNam$+".DATEN"
Datinfnam$=Drive$+Pfad$+DNam$+".INFOS"
GOSUB LeseInfos
LPRINT "Filename :";Datnam$
LPRINT "Datensatz #";Satz
LPRINT
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
CALL REQUEST("Diese Datei wirklich","L Ö S C H E N ?"," Ja "," NEIN !! ",req%)
IF req%<>0 THEN
KILL DNam$
END IF
END IF
GOSUB FensterWieVorher
RETURN
GrafikDateiAnlegen:
w.t$="MaxiDAT. Anlegen einer Datei für Grafikdaten"+CHR$(0)
GOSUB FensterNeuRichten
GOSUB LoescheVariablen
LINE (0,0)-(640,255),0,bf:CLS
PRINT "Grafikdatei anlegen ..."
LINE INPUT "Dateiname ? ";nam$
IF nam$="" THEN
GOSUB FensterWieVorher:RETURN
END IF
Datinfnam$=Drive$+Pfad$+nam$+".INFOS"
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,11
WRITE #2,2
WRITE #2,1
WRITE #2,"Name"
WRITE #2,5
WRITE #2,"Value"
WRITE #2,5
CLOSE #2
GOSUB FensterWieVorher
RETURN
Zeichnen:
w.t$="MaxiDAT. Grafik zeichnen"+CHR$(0)
GOSUB FensterNeuRichten
GOSUB LoescheVariablen
LINE (0,0)-(640,255),0,bf:CLS
M=0
PRINT "Grafik zeichnen ... "
LINE INPUT "Filename ? ";nam$
IF nam$="" THEN
GOSUB FensterWieVorher:RETURN
END IF
Datnam$=Drive$+Pfad$+nam$+".DATEN"
Datinfnam$=Drive$+Pfad$+nam$+".INFOS"
GOSUB LeseInfos
CLS
IF schon.benutzt=1 THEN
ERASE b$
ERASE Wert
END IF
schon.benutzt=1
CLS
DIM b$(Satznummer),Wert(Satznummer)
OPEN "R",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
FOR i=1 TO Satznummer-1
GET #1,i
b$(i)=In$(1)
Wert(i)=VAL(In$(2))
NEXT i
CLOSE #1
GesamtWert=0 : MaxWert=0 : Anzahl=0
FOR i=1 TO Satznummer
GesamtWert=GesamtWert+Wert(i)
IF Wert(i) <> 0 THEN
INC Anzahl
IF Wert(i) > MaxWert THEN
MaxWert=Wert(i)
END IF
END IF
NEXT i
PRINT "Der höchste vorkommende Wert ist y=";MaxWert
PRINT "Wenn Sie diesen Wert ändern wollen, geben Sie den neuen Wert jetzt ein!"
LINE INPUT "Größte y-Achsen-Beschriftung (od. RETURN) ?";M$
IF VAL(M$)>MaxWert THEN
MaxWert=VAL(M$)
END IF
CALL REQUEST("Welche Art Grafik","soll ich zeichnen ?","Balken","Linien",erg%)